/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Modelo;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.ArrayList;

/**
 *
 * @author 
 */
public class Mantenimiento {
    private String id_mantenimiento;
    private Detalle_Venta obj_det_vent=new Detalle_Venta();
    private Tipo_Mantenimiento obj_tipo_mant=new Tipo_Mantenimiento();
    private Detalle_Producto obj_det_prod=new Detalle_Producto();
    private String motivo;

    public String getId_mantenimiento() {
        return id_mantenimiento;
    }

    public void setId_mantenimiento(String id_mantenimiento) {
        this.id_mantenimiento = id_mantenimiento;
    }

    public String getMotivo() {
        return motivo;
    }

    public void setMotivo(String motivo) {
        this.motivo = motivo;
    }

    public Detalle_Producto getObj_det_prod() {
        return obj_det_prod;
    }

    public void setObj_det_prod(Detalle_Producto obj_det_prod) {
        this.obj_det_prod = obj_det_prod;
    }

    public Detalle_Venta getObj_det_vent() {
        return obj_det_vent;
    }

    public void setObj_det_vent(Detalle_Venta obj_det_vent) {
        this.obj_det_vent = obj_det_vent;
    }

    public Tipo_Mantenimiento getObj_tipo_mant() {
        return obj_tipo_mant;
    }

    public void setObj_tipo_mant(Tipo_Mantenimiento obj_tipo_mant) {
        this.obj_tipo_mant = obj_tipo_mant;
    }
    
     public static boolean agregarMantenimiento(Mantenimiento obj_a){
       boolean a=false;
      Connection conexion = null;
      try {
          conexion= ControladorBD.darConexionBD();
          CallableStatement st;
          st=conexion.prepareCall("{call  sp_Registrar_Mantenimiento(?,?,?,?,?)}");
          conexion.setAutoCommit(false);
          st.setString(1,obj_a.getObj_det_vent().getId_detalle_venta());
          st.setString(2,obj_a.getObj_tipo_mant().getId_tipo_mantenimiento());
          st.setString(3,obj_a.getObj_det_prod().getSerie_producto());      
          if(obj_a.getMotivo() != null){
              if(obj_a.getMotivo().length()>0){
                st.setString(4,obj_a.getMotivo());
              }
              else{
                st.setString(4,null);
              } 
          }
          else{
              st.setString(4,null);
          }
                           
          st.registerOutParameter(5, java.sql.Types.VARCHAR); //intentar extraer el parametro de salida y darselo al codigo
          st.execute();
          if(st.getString(5)!=null){
              a=true;
          }
          st.close();
          conexion.setAutoCommit(true);
          conexion.close();
     }catch(Exception error){
          System.out.println("Error en agregarMnatenimiento:"+error.getMessage());
          error.printStackTrace();
    }
      return a;
    
     }
    public static ArrayList<Mantenimiento>getCargarMantenimiento(){
        ArrayList<Mantenimiento> arreglo=null;
        Mantenimiento obj = null;
        Connection conexion = null;
        ResultSet rs= null;

        try{
            conexion = ControladorBD.darConexionBD();
            CallableStatement st = conexion.prepareCall("{call sp_Listar_Mantenimiento()}");
            rs=st.executeQuery();
            //st(1,estado);
            if(rs.next()){
                arreglo=new ArrayList<Mantenimiento>();
                do{
                   
                    obj=new Mantenimiento();
                    obj.setId_mantenimiento(rs.getString("id_mantenimiento"));
                    Detalle_Venta ob=new Detalle_Venta();
                    ob.setId_detalle_venta(rs.getString("id_detalle_venta"));
                    obj.getObj_det_vent();
                    Tipo_Mantenimiento ob1=new Tipo_Mantenimiento();
                    ob1.setId_tipo_mantenimiento(rs.getString("id_tipo_matenimiento"));
                    obj.setObj_tipo_mant(ob1);
                    Detalle_Producto dp=new Detalle_Producto();
                    dp.setSerie_producto(rs.getString("serie_producto"));
                    obj.setObj_det_prod(dp);
                    obj.setMotivo(rs.getString("motivo"));
                   
                    
                    arreglo.add(obj);
                }while(rs.next());
            }
        }catch(Exception error) {
            System.out.println("Error en Listado: " + error.getMessage());
            error.getMessage();
        }
        return arreglo;
    
    }

 
}
